//package com.xx.cloud.pay.controller;
//
//
//import jakarta.servlet.http.HttpServletRequest;
//import me.chanjar.weixin.common.api.WxConsts;
//import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
//import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
//import me.chanjar.weixin.mp.api.WxMpService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.servlet.view.RedirectView;
//
//
//
// 公众号授权登录
//@RestController
//@RequestMapping("/wx")
//public class WxController {
//
//    @Autowired
//    private WxMpService wxMpService;
//
//    @GetMapping("/auth")
//    public RedirectView auth() {
//        // 构建请求URL
//        String redirectUrl = "https://e404e.natapp4.cc/wx/callback"; // 用户同意授权后，会跳转到这个callback地址
//        String oauthUrl = wxMpService.getOAuth2Service().buildAuthorizationUrl(
//                redirectUrl,
//                WxConsts.OAuth2Scope.SNSAPI_USERINFO,
//                null
//        );
////        return oauthUrl;
////        return R.ok (oauthUrl,"授权登录");
//        return new RedirectView(oauthUrl);
//    }
//
//    @GetMapping("/callback")
//    public RedirectView callback(HttpServletRequest request) {
//        // 从请求中获取code
//        String code = request.getParameter("code");
//        if (code == null) {
//            // 用户拒绝授权，处理相关逻辑
////            return "授权失败";
//            return new RedirectView("http://192.168.2.4:8081");
//        }
//
//        try {
//            // 使用code换取access_token
//            WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(code);
//
//            // 从token中获取用户的openId
//            String openId = accessToken.getOpenId();
//
//            // 也可以获取refresh_token，以便于以后更新access_token
//            String refreshToken = accessToken.getRefreshToken();
//
//            WxOAuth2UserInfo userInfo = wxMpService.getOAuth2Service().getUserInfo(accessToken, openId);
//            System.out.println(userInfo);
//            return new RedirectView("http://192.168.2.4:8081/#/?openId=" + userInfo.getOpenid());
//        } catch (Exception e) {
//            // 处理异常情况
//
//            return new RedirectView("http://192.168.2.4:8081");
//        }
//    }
//
//}
